//package com.xinggq.common.config;
//
//import com.xinggq.box.handler.CustomWebSocketHandler;
//import java.util.Map;
//import lombok.NonNull;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.http.server.ServerHttpRequest;
//import org.springframework.http.server.ServerHttpResponse;
//import org.springframework.http.server.ServletServerHttpRequest;
//import org.springframework.web.socket.WebSocketHandler;
//import org.springframework.web.socket.config.annotation.EnableWebSocket;
//import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
//import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
//import org.springframework.web.socket.server.HandshakeInterceptor;
//
///**
// * websocket配置
// * @Description
// * @Author xinggq
// * @Date 2025/4/14
// */
//@Configuration
//@EnableWebSocket
//@Slf4j
//public class WebSocketConfig implements WebSocketConfigurer {
//
//  @Override
//  public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
//    registry.addHandler(customWebSocketHandler(), "/ws/serverTwo")
//        .setAllowedOrigins("*")
//        .addInterceptors(new MyWebSocketInterceptor());
//  }
//
//  @Bean
//  public CustomWebSocketHandler customWebSocketHandler() {
//    return new CustomWebSocketHandler();
//  }
//
//  /**
//   * 自定义拦截器拦截WebSocket请求
//   */
//  static class MyWebSocketInterceptor implements HandshakeInterceptor {
//
//    //前置拦截一般用来注册用户信息，绑定 WebSocketSession
//    @Override
//    public boolean beforeHandshake(
//        @NonNull ServerHttpRequest request,
//        @NonNull ServerHttpResponse response,
//        @NonNull WebSocketHandler wsHandler,
//        @NonNull Map<String, Object> attributes
//    ) {
//      log.info("websocket前置拦截");
//      if (!(request instanceof ServletServerHttpRequest)) {
//        return true;
//      }
//      String userName = "Koishipyb";
//      attributes.put("userName", userName);
//      return true;
//    }
//
//    @Override
//    public void afterHandshake(
//        @NonNull ServerHttpRequest request,
//        @NonNull ServerHttpResponse response,
//        @NonNull WebSocketHandler wsHandler,
//        Exception exception
//    ) {
//      log.info("websocket后置拦截");
//    }
//  }
//
//}